The large number of network applications engaged in communications over various private and public networks (e.g., Internet) have imposed different demands on the network interface cards (“NICs”) employed by the network devices involved in handling those communications. NICs generally handle data sent to or from a network device, generating processor interrupts as data is received or needs to be transmitted. Since interrupts are computationally expensive because the network device processors must switch context, it is generally desirable to interrupt the processors only as needed. Some data transfer protocols, such as FTP, however, are high throughput in nature because large numbers of packets are transferred at a time without requiring a relatively high number of processor interrupts for applications handling the packets. In this case, many packets may be coalesced before interrupting the processor.
Other types of data transfer protocols are low latency in nature because more frequent processor interrupts are needed by applications handling the packets. For example, the NFS protocol requires the receipt of confirmatory acknowledgement messages before subsequent file portions can be transmitted. In this case, the file transfer performance depends on the request to acknowledgement processing time or latency. Thus for such low latency type data, the best performance is achieved by interrupting processors immediately upon the arrival of packets embodying the file portions, which as noted above, is the exact opposite for high throughput type data.